package com.ms.qw.client.dto;

import com.ms.qw.enums.RecetaEstado;
import com.ms.qw.enums.TipoCuenta;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class CheckPointDTO extends AuditoriaDTO {

    private Long checkPointId;
    private Long usuarioId;
    private String usuarioLogin;
    private String nombreArchivo;
    private Date fechaContable;
    private String comentario;
    private List<String> archivos = new ArrayList<String>();

    private RecetaEstado estado;
    private TipoCuenta tipo;
    private String anno1;
    private String anno2;
    private String anno3;
    private String anno4;
    private Long totalAgrupacion;
    private Long totalCuentaContable;
    private Boolean seleccionado;

    public String getResumenFecha() {
        if (!RecetaEstado.TERMINADO.equals(estado)) return "";
        return anno1 + " , " + anno2 + " , " + anno3 + " , " + anno4;
    }

    public CheckPointDTO(Long checkPointId, String nombreArchivo) {
        this.checkPointId = checkPointId;
        this.nombreArchivo = nombreArchivo;
    }

    public String getPresentacion() {
        return nombreArchivo + "-" + comentario;
    }

    public CheckPointDTO() {
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        CheckPointDTO that = (CheckPointDTO) o;

        if (checkPointId != null ? !checkPointId.equals(that.checkPointId) : that.checkPointId != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        return checkPointId != null ? checkPointId.hashCode() : 0;
    }

    public Long getCheckPointId() {
        return checkPointId;
    }

    public void setCheckPointId(Long checkPointId) {
        this.checkPointId = checkPointId;
    }

    public String getNombreArchivo() {
        return nombreArchivo;
    }

    public void setNombreArchivo(String nombreArchivo) {
        this.nombreArchivo = nombreArchivo;
    }

    public String getComentario() {
        return comentario;
    }

    public void setComentario(String comentario) {
        this.comentario = comentario;
    }

    public RecetaEstado getEstado() {
        return estado;
    }

    public void setEstado(RecetaEstado estado) {
        this.estado = estado;
    }

    public Long getUsuarioId() {
        return usuarioId;
    }

    public void setUsuarioId(Long usuarioId) {
        this.usuarioId = usuarioId;
    }

    public TipoCuenta getTipo() {
        return tipo;
    }

    public void setTipo(TipoCuenta tipo) {
        this.tipo = tipo;
    }

    public String getAnno1() {
        return anno1;
    }

    public void setAnno1(String anno1) {
        this.anno1 = anno1;
    }

    public String getAnno2() {
        return anno2;
    }

    public void setAnno2(String anno2) {
        this.anno2 = anno2;
    }

    public String getAnno3() {
        return anno3;
    }

    public void setAnno3(String anno3) {
        this.anno3 = anno3;
    }

    public String getAnno4() {
        return anno4;
    }

    public void setAnno4(String anno4) {
        this.anno4 = anno4;
    }

    public List<String> getArchivos() {
        return archivos;
    }

    public void setArchivos(List<String> archivos) {
        this.archivos = archivos;
    }

    public Date getFechaContable() {
        return fechaContable;
    }

    public void setFechaContable(Date fechaContable) {
        this.fechaContable = fechaContable;
    }

    public Long getTotalAgrupacion() {
        return totalAgrupacion;
    }

    public void setTotalAgrupacion(Long totalAgrupacion) {
        this.totalAgrupacion = totalAgrupacion;
    }

    public Long getTotalCuentaContable() {
        return totalCuentaContable;
    }

    public void setTotalCuentaContable(Long totalCuentaContable) {
        this.totalCuentaContable = totalCuentaContable;
    }

    public String getUsuarioLogin() {
        return usuarioLogin;
    }

    public void setUsuarioLogin(String usuarioLogin) {
        this.usuarioLogin = usuarioLogin;
    }

    public Boolean getSeleccionado() {
        return seleccionado;
    }

    public void setSeleccionado(Boolean seleccionado) {
        this.seleccionado = seleccionado;
    }
}
